<style>
    .detail-grid {
        display: grid;
        gap: 1.5rem;
    }
    
    @media (min-width: 1024px) {
        .detail-grid {
            grid-template-columns: 2fr 1fr;
        }
    }
    
    .meta-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
        gap: 0.75rem;
        margin-top: 1rem;
    }
    
    .meta-item {
        display: flex;
        flex-direction: column;
        gap: 0.25rem;
        padding: 0.75rem;
        border-radius: var(--radius-md);
        background: var(--surface);
        border: 1px solid var(--border-subtle);
    }
    
    .meta-label {
        font-size: 0.8125rem;
        color: var(--text-tertiary);
        font-weight: 500;
    }
    
    .meta-value {
        font-size: 0.9375rem;
        color: var(--text-primary);
        font-weight: 600;
    }
    
    .section-heading {
        margin-top: 1.5rem;
        margin-bottom: 0.75rem;
        font-size: 1.125rem;
        font-weight: 700;
        color: var(--text-primary);
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
    
    .section-heading::before {
        content: "";
        width: 4px;
        height: 1.125rem;
        background: var(--accent);
        border-radius: var(--radius-full);
    }
    
    .content-block {
        padding: 1.25rem;
        background: var(--surface);
        border-radius: var(--radius-lg);
        border: 1px solid var(--border-subtle);
        line-height: 1.7;
        color: var(--text-primary);
        white-space: pre-wrap;
    }
    
    .timeline {
        list-style: none;
        padding: 0;
        margin: 1.5rem 0 0;
        position: relative;
    }
    
    .timeline::before {
        content: "";
        position: absolute;
        top: 0.5rem;
        bottom: 0.5rem;
        left: 1.125rem;
        width: 2px;
        background: var(--border-medium);
    }
    
    .timeline-item {
        position: relative;
        padding-left: 3rem;
        margin-bottom: 1.5rem;
    }
    
    .timeline-dot {
        position: absolute;
        left: 0.5rem;
        top: 0.25rem;
        width: 1.5rem;
        height: 1.5rem;
        border-radius: 50%;
        background: var(--surface-elevated);
        border: 3px solid var(--accent);
        box-shadow: 0 0 0 4px var(--accent-soft);
        z-index: 1;
    }
    
    .timeline-item.inactive .timeline-dot {
        border-color: var(--border-medium);
        box-shadow: none;
        background: var(--surface);
    }
    
    .timeline-content {
        background: var(--accent-soft);
        border-radius: var(--radius-md);
        padding: 1rem 1.25rem;
        border: 1px solid var(--border-subtle);
    }
    
    .timeline-content strong {
        color: var(--text-primary);
        font-weight: 600;
    }
    
    .timeline-content p {
        margin: 0.5rem 0 0;
        color: var(--text-secondary);
        font-size: 0.9375rem;
    }
    
    .chat {
        display: grid;
        gap: 1rem;
    }
    
    .chat-entry {
        border-radius: var(--radius-lg);
        padding: 1rem 1.25rem;
        border: 1px solid var(--border-subtle);
        background: var(--surface-elevated);
        box-shadow: var(--shadow-sm);
        transition: all var(--transition-base);
    }
    
    .chat-entry:hover {
        box-shadow: var(--shadow-md);
    }
    
    .chat-entry.student {
        background: var(--accent-soft);
        border-color: var(--accent-light);
    }
    
    .chat-entry.llm {
        background: var(--success-light);
        border-color: rgba(34, 197, 94, 0.2);
    }
    
    .chat-entry.teacher {
        background: var(--warning-light);
        border-color: rgba(234, 179, 8, 0.2);
    }
    
    .chat-entry strong {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        color: var(--text-primary);
        font-weight: 600;
        margin-bottom: 0.5rem;
    }
    
    .chat-entry small {
        font-size: 0.8125rem;
        color: var(--text-secondary);
        display: block;
        margin-bottom: 0.75rem;
    }
    
    .chat-entry > div {
        color: var(--text-primary);
        line-height: 1.6;
    }
    
    #llm-sidebar {
        position: sticky;
        top: 5rem;
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
    
    #llm-form {
        background: var(--surface-elevated);
        border-radius: var(--radius-lg);
        padding: 1.5rem;
        border: 2px solid var(--border-medium);
        box-shadow: var(--shadow-md);
    }
    
    #llm-form textarea {
        min-height: 120px;
        margin-bottom: 1rem;
    }
    
    #llm-feedback {
        margin-top: 1rem;
    }
    
    #llm-reset-form {
        background: var(--surface);
        border-radius: var(--radius-lg);
        padding: 1rem 1.25rem;
        border: 1px dashed var(--border-medium);
    }
    
    #llm-reset-form p {
        margin: 0 0 0.75rem 0;
        color: var(--text-secondary);
        font-size: 0.875rem;
        line-height: 1.5;
    }
    
    .hero-badge {
        display: inline-flex;
        align-items: center;
        gap: 0.5rem;
        padding: 0.5rem 1rem;
        background: var(--accent-soft);
        border: 1px solid var(--accent-light);
        border-radius: var(--radius-full);
        font-size: 0.875rem;
        font-weight: 600;
        color: var(--accent);
    }
    
    /* Spinner 动画 */
    .spinner {
        display: inline-block;
        width: 20px;
        height: 20px;
        border: 3px solid rgba(255, 255, 255, 0.3);
        border-top-color: currentColor;
        border-radius: 50%;
        animation: spin 0.8s linear infinite;
    }
    
    @keyframes spin {
        to { transform: rotate(360deg); }
    }
    
    /* 快捷问题按钮样式 */
    .quick-question {
        justify-content: flex-start;
        text-align: left;
        white-space: normal;
        line-height: 1.4;
        transition: all var(--transition-base);
    }
    
    .quick-question:hover {
        transform: translateX(4px);
        background: var(--accent-soft);
        border-color: var(--accent-light);
        color: var(--accent);
    }
    
    /* 对话区域滚动条样式 */
    #conversation::-webkit-scrollbar {
        width: 8px;
    }
    
    #conversation::-webkit-scrollbar-track {
        background: var(--surface);
        border-radius: var(--radius-sm);
    }
    
    #conversation::-webkit-scrollbar-thumb {
        background: var(--border-medium);
        border-radius: var(--radius-sm);
    }
    
    #conversation::-webkit-scrollbar-thumb:hover {
        background: var(--border-strong);
    }
    
    /* Code 样式 */
    code {
        background: var(--surface);
        padding: 0.125rem 0.5rem;
        border-radius: var(--radius-sm);
        font-size: 0.875em;
        font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
        border: 1px solid var(--border-subtle);
    }
    
    /* 消息淡入动画 */
    @keyframes fadeInUp {
        from {
            opacity: 0;
            transform: translateY(10px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
    
    .chat-entry {
        animation: fadeInUp 0.3s ease-out;
    }
</style>
<script>
    window.MathJax = {
        tex: {
            inlineMath: [
                ["$", "$"],
                ["\\(", "\\)"]
            ],
            displayMath: [
                ["$$", "$$"],
                ["\\[", "\\]"]
            ]
        }
    };
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js" id="MathJax-script" crossorigin="anonymous"></script>
